package cn.yeziji.forum.common.key;

/**
 * Websocket 缓存键值
 *
 * @author gzkemays
 * @since 2022/3/27 10:22
 */
public interface WebsocketCacheKey {
  String COMMON_CHAT_ROOM = "Chatroom";
  /** 私聊聊天室 */
  String PRIVATE_TO_AND_FROM = buildKey("Private");
  /** 是否在线 */
  String USER_ONLINE = buildKey("Online");
  /** 公共聊天室 */
  String ALL_CHAT = buildKey("AllChat");

  /**
   * 构建以最底层的 cache key
   *
   * @param key 底层 key
   * @return 完整的 cache key
   */
  static String buildKey(String key) {
    return COMMON_CHAT_ROOM + "::" + key;
  }

  /**
   * 构建私聊聊天室命名
   *
   * @param chatroom 聊天室名
   * @return 完整聊天室命名
   */
  static String privateChatroom(String chatroom) {
    return PRIVATE_TO_AND_FROM + "::" + chatroom;
  }
}
